With the advent of increased computing power and data storage, the development of computational tools to study ever increasingly complex systems in detail has increased. Examples of complex systems include weather systems, ecosystems, biological systems, business operations, information technology, and cloud computing systems just to name a few. Of particular importance to those who study these complex systems is the ability to identify variations, such as abnormalities, that occur within these complex systems. For example, in the case of a data center, variations from normal or expected computational operations could lead to failures, slowdown, and other problems. These types of problems are often triggered by unobserved variations or abnormalities in the operation of processes or computational resources that may cascade into larger problems.
Monitoring complex systems generates vast amounts of time-series data that is collected, analyzed, and presented for human understanding. In recent years, computational techniques have been developed to detect anomalies in time-series data that does not conform to an established normal behavior for a complex system. These anomalies may translate into critical and actionable information in several application domains. In particular, thresholds are typically used to identify anomalies in flows of time-series data. Alerts are generated when the time-series data violates a predefined threshold. Many processes used to monitor complex systems provide hard threshold features and dynamic threshold capabilities with the hard thresholds set manually. However, with the increasing volume and variety of time-series data collected for complex systems, manually setting hard thresholds to monitor the behavior of complex systems is often infeasible.